package com.xz.questions.saToken;

import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil;
import com.xz.questions.model.entity.User;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import static com.xz.questions.constant.UserConstant.USER_LOGIN_STATE;

/**
 *  定义自己的权限
 */
@Component
public class StpInterfaceImpl implements StpInterface {

    /**
     * 本项目没有使用到具体的权限（因此直接返回 null ）
     */
    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        return new ArrayList<>();
    }

    /**
     * 返回一个账号所拥有的角色
     */
    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        // 从当前登录用户中获取
        User user = (User) StpUtil.getSessionByLoginId(loginId).get(USER_LOGIN_STATE);

        // 获取角色
        return Collections.singletonList(user.getUserRole());
    }

}
